// 模拟；时间复杂度O(max(n1, n2))；空间复杂度O(1)

class Solution {
public:
    string addStrings(string num1, string num2) {
        int n1 = num1.size() - 1, n2 = num2.size() - 1, add = 0;
        string ret;
        while (n1 >= 0 || n2 >= 0 || add != 0) {
            int num = 0;
            if (n1 >= 0) {
                num += num1[n1] - '0';
                n1--;
            }
            if (n2 >= 0) {
                num += num2[n2] - '0';
                n2--;
            }
            num += add;
            add = num / 10;
            num = num % 10;
            ret.push_back(num + '0');
        }
        reverse(ret.begin(), ret.end());
        return ret;
    }
};